package com.vito.oa.act.service;

import java.util.List;

import com.vito.base.model.DataGrid;
import com.vito.base.model.MyHashMap;
import com.vito.base.model.Result;
import com.vito.oa.act.extend.model.OaActExApproveInfoModel;
import com.vito.oa.act.extend.model.OaActExBussModel;

/**
 * 审批单撤回、删除、归档操作
 * 
 * @author xuezhenann
 *
 */
public interface OaActGeneralOperateService {
	/**
	 * 获取企业流程列表
	 * 
	 * @param deptParentId
	 * @return
	 */
	public List<MyHashMap<String, String>> queryProcessListByDept(OaActExBussModel model);

	/**
	 * 用户流程撤回
	 * 
	 * @param businessId
	 * @return
	 * @throws Exception
	 */
	public Result withdrawPersonProcess(String businessId) throws Exception;

	/**
	 * 是否满足撤回条件
	 * 
	 * @param businessId
	 * @return
	 */
	public boolean canBeWithdraw(String businessId);

	/**
	 * 用户删除自己的审批申请
	 * 
	 * @param businessId
	 * @return
	 * @throws Exception
	 */
	public boolean deleteUserProcess(String businessId) throws Exception;

	/**
	 * 审批单归档
	 * 
	 * @param businessId
	 * @return
	 */
	boolean updateProcessToFiled(String businessId);

	/**
	 * 分页查询已删除/已归档审批
	 * 
	 * @param actExApproveInfoModel
	 *            <p>
	 *            #dataStatus为1：查询删除的审批
	 *            #dataStatus为2：查询归档的审批
	 *            </p>
	 * @return
	 */
	public DataGrid<MyHashMap<String, String>> queryDeletedOrFiledData(OaActExApproveInfoModel actExApproveInfoModel);
}
